package cqrtplm.service;

import cqrtplm.dto.RTCertFiledFormDTO;
import cqrtplm.entity.RtCertFiledPartinfoDO;

import java.util.List;

/**
 * 零部件信息服务接口
 */
public interface RtCertFiledPartinfoService {

    /**
     * 查询零部件信息
     * @param id 零部件信息主键
     * @return 零部件信息
     */
    RtCertFiledPartinfoDO selectRtCertFiledPartinfoById(String id);

    /**
     * 查询零部件信息列表
     * @param rtCertFiledPartinfo 零部件信息
     * @return 零部件信息集合
     */
    List<RtCertFiledPartinfoDO> selectRtCertFiledPartinfoList(RtCertFiledPartinfoDO rtCertFiledPartinfo);

    List<RtCertFiledPartinfoDO> selectRtCertFiledPartinfoListWithManufactorList(
            RtCertFiledPartinfoDO rtCertFiledPartinfo);

    /**
     * 新增零部件信息
     * @param rtCertFiledPartinfo 零部件信息
     * @return 结果
     */
    String insertRtCertFiledPartinfo(RtCertFiledPartinfoDO rtCertFiledPartinfo);

    /**
     * 修改零部件信息
     * @param rtCertFiledPartinfo 零部件信息
     * @return 结果
     */
    int updateRtCertFiledPartinfo(RtCertFiledPartinfoDO rtCertFiledPartinfo,RTCertFiledFormDTO formDTO);

    /**
     * 批量修改零部件信息
     * @param list 零部件信息集合
     */

    void updateEntityList(RTCertFiledFormDTO formDTO, List<RtCertFiledPartinfoDO> list);

    /**
     * 批量删除零部件信息
     * @param ids 需要删除的零部件信息主键集合
     * @return 结果
     */
    int deleteRtCertFiledPartinfoByIds(List<String> ids);

    /**
     * 删除零部件信息
     * @param id 零部件信息主键
     * @return 结果
     */
    int deleteRtCertFiledPartinfoById(String id);

    int deleteRtCertFiledPartinfoByFiledId(String id);

    /**
     * 根据件号查询零部件信息
     * @param entity 对象
     * @return 零部件信息
     */
    RtCertFiledPartinfoDO selectRtCertFiledPartinfoByDO(RtCertFiledPartinfoDO entity);

    List<String> getPartTypeList();
}